package com.ys.utils.hjzf.sdk.utils;


import com.ys.utils.base.j2se.Logger;
import com.ys.utils.spring.config.SystemError;
import com.ys.utils.hjzf.sdk.constants.Algorithm;
import com.ys.utils.hjzf.sdk.constants.CommonConst;

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * MD5工具类
 * @author chenyf
 * @date 2018-12-15
 */
public class MD5Util {

    /**
     * 生成16进制的MD5字符串
     * @param str
     * @return
     */
    public static String getMD5Hex(String str) {
        return HEXUtil.encode(getMD5(str), true);
    }

    public static byte[] getMD5(String str) {
        MessageDigest messageDigest;
        try {
            messageDigest = MessageDigest.getInstance(Algorithm.MD5);
            messageDigest.reset();
            if (StringUtil.isNotEmpty(str)) {
                messageDigest.update(str.getBytes(CommonConst.ENCODING_UTF_8));
            }
            return messageDigest.digest();
        } catch (NoSuchAlgorithmException e) {
            Logger.error(e);
            SystemError.wrapBs("500", "生成MD5信息时异常");
        } catch (UnsupportedEncodingException e) {
            Logger.error(e);
            SystemError.wrapBs("500", "生成MD5信息时异常...");
        }
        return null;
    }
}
